บันทึกและคำนวณภาษีซื้อ-ขายรายเดือนด้วย Google Sheets
Table of Contents
ผู้ประกอบการรายเล็กหลายๆท่านคงรู้ดีว่าทุกเดือนเราจะยื่นเอกสารชุดหนึ่งที่ชื่อว่า ภ.ง.ด ๕๐ ซึ่งก็จำเป็นจะต้องมีข้อมูลของการซื้อและขายมาประกอบกันเพื่อให้ได้ตัวเลขไปรายงานพี่สรรพากรเค้า แต่จะทำยังไงดีให้มันไม่มั่วไม่สับสน บทความนี้มีวิธีดีๆที่จะช่วยให้คุณจัดการข้อมูลได้ง่ายและแม่นยำมากขึ้นครับ
วางโครงสร้างข้อมูล #
ไม่ว่าเราจะทำอะไรใน Google Sheets สิ่งแรกคือการวางแผนครับ ผมจะสร้าง Sheet เอาไว้เก็บข้อมูล ดังต่อไปนี้
- รายชื่อคู่ค้า เก็บรายชื่อลูกค้าหรือผู้ขายที่เราทำการซื้อขายด้วย บันทึกไว้เพื่อความสะดวกเวลาที่จะกรอกในใบกำกับรายการซื้อ-ขายครับ
- ใบกำกับขาย เก็บข้อมูลใบกำกับภาษีที่เราขายในแต่ละเดือน
- ใบกำกับซื้อ เก็บข้อมูลใบกำกับภาษีที่เราซื้อในแต่ละเดือน
- รายชื่อเดือน ตัวนี้เป็นตารางชื่อเดือนภาษาไทยกับอังกฤษ ทำไว้เผื่อการเรียกใช้ในสูตรครับ
เริ่มบันทึกข้อมูล #
หลังจากสร้าง Sheet ไว้เรียบร้อยแล้วคราวนี้ก็จะมาลงรายละเอียดของ Sheet แต่ละตัวว่ามีหน้าที่และเก็บข้อมูลยังไงนะครับ
อธิบายก่อนกันงง #
จะมีสูตรที่ถูกใช้บรรจุอยู่ในสิ่งที่เรียกว่า Array ให้เห็นบ่อยๆในบทความนี้นะครับ โดยวิธีเขียนมันจะมีวงเล็บปีกกาแบบนี้ ={1,2,3;4,5,6;7,8,9}
คำสั่งนี้จะเป็นการบอกให้ sheet สร้างข้อมูลออกมา 3 rows, 3 columns โดยแต่ละแถวจะถูกขั้นด้วย ;
ดูผลลัพธ์ในภาพได้เลยครับ เพื่อความเข้าใจ

คำสั่งนี้จะทำให้เราเขียนสูตรต่อกันหลายบรรทัดได้ใน 1 cell ซึ่งบทความนี้ใช้เยอะครับเลยขอบอกไว้ก่อนเดี๋ยวจะงงกัน
รายชื่อคู่ค้า #
sheet นี้ไม่มีอะไรนอกจากการโยนชื่อลูกค้าหรือผู้ขายที่เราซื้อขายด้วยลงไปครับ ใครอยากใส่รายละเอียดพวกที่อยู่ก็ได้นะไม่ผิดอะไรยิ่งใส่ยิ่งดีในการค้นหาข้อมูลในอนาคตด้วยครับ ชื่อที่เก็บในนี้ต้องไม่ซ้ำกันนะครับ เพราะเราจะดึงรายชื่อพวกนี้ไปช่วยทำให้การกรอกใบกำกับภาษีของเราง่ายและเร็วขึ้น

รายชื่อเดือน #
sheet นี้ไม่เกี่ยวอะไรกับตัวเลขของเราครับ แต่จะช่วยให้เราสะดวกสบายในการแยกใบกำกับภาษีซื้อได้ มันจะช่วยลดการใช้สูตรที่ยาวเหยียดในการทำ report แต่ละเดือนครับ ทำเป็น 2 ภาษาเลยนะครับ เดี๋ยว sheet ต่อไปคุณจะรู้เหตุผลว่าทำไมต้องทำ

ใบกำกับขาย #
ตัวสำคัญของเราเลยครับกรอกข้อมูลการขายของเราครับ ใครออกใบกำกับไว้กี่ใบเอามากรอกลงในนี้ให้หมดนะครับ ไม่ต้องไปกั๊กนะครับสรรพากรมาเยี่ยมผมไม่รู้ด้วยนะ

- ลูกค้า จริงๆก่อนจะกรอกชื่อของลูกค้าที่
column C
เราสามารถสร้าง dropdown รายชื่อลูกค้าได้นะครับ โคยเลือกคลุมทั้ง column แล้วคลิกขวาเลือก Data validation ในเมนูครับ หลังจากนั้นที่ Criteria เราก็จะเลือกเป็น List from a range เพราะเราต้องการจะดึงรายชื่อมาจาก Sheet รายชื่อคู่ค้าของเราครับ ซึ่งรายชื่อคู่ค้าของผมก็จะอยู่ใน range นี้'รายชื่อคู่ค้า'!A2:A
ใครไม่อยากพิมพ์สูตรกดที่รูปตารางเล็กๆ แล้วไปลากเอาที่ sheet รายชื่อคู่ค้า ได้เลยครับ

เพื่อประหยัดเวลาในการกรอก นอกจากราคา(ที่ยังไม่รวม VAT)แล้ว ช่องอื่นๆเราจะให้ Google Sheets จัดการกรอกให้เราเลยครับ
- ภาษี ผมจะใช้คำสั่งนี้ที่ cell
E1
ครับ (เว้นบรรทัดเพื่อความสวยงาม ใน Google Sheets ก็ทำได้นะครับใช้ Alt + Enter)
={
"ภาษี";
ARRAYFORMULA(
IF(
A2:A<>"",
(D2:D*7%),
""
)
)
}
อธิบายง่ายๆก็คือแถวแรกผมจะให้แสดงคำว่า “ภาษี” สังเกตว่ามี ;
ปิดท้ายแปลว่าจบแถว ขึ้นแถวใหม่ผมใช้ =ARRAYFORMULA()
หาดูว่าช่อง A2
ลงไปจนสุดเนี่ยตัวไหนไม่ว่างเปล่าบ้าง A2:A<>""
(จริงๆจะใช้ D2:D ก็ได้นะครับ) ถ้าไม่มีก็ช่วยเอา D2:D
ซึ่งเป็นราคาที่ยังไม่รวม VAT เนี่ยไปหาทีว่า 7% มันคือเท่าไหร่ด้วยการคูณกันเป็น D2:D*7%
เราก็จะได้เลขภาษี 7% จากราคาแล้วครับผม

- ยอดสุทธิ สูตรไม่ต่างจากภาษีครับ ต่างแค่การคำนวณนิดหน่อย
={
"ยอดสุทธิ";
ARRAYFORMULA(
IF(
A2:A<>"",
(D2:D+E2:E),
""
)
)
}
เหมือนข้างบนครับต่างกันตรงที่ ผมจะเอา D2:D
มารวมกับ E2:E
ซึ่งก็คือการเอา ราคา + vat
นั่นแหละครับ

- เดือน เพื่อให้สะดวกในการดึงค่าไปใช้ ผมจะสร้าง column นี้มาเพื่อแสดงชื่อเดือนภาษาไทย โดยมันไม่ได้แสดงมาแบบสุ่มๆนะครับ มันจะไปดูที่
column A
ว่าวันที่คือวันอะไร แล้วจะแสดงเดือนในช่องนี้แทน
={
"เดือน";
ARRAYFORMULA(
IF(
A2:A<>"",
VLOOKUP(
TEXT(A2:A, "MMMM"),'รายชื่อเดือน'!A2:B13,2,false
),
""
)
)
}
จริงๆก็คล้ายคำสั่งบนๆนะครับ แต่เห็น =VLOOKUP()
อย่าพึ่งถอดใจนะครับมันมาแค่ตรงนี้แหละ ที่ผมไม่ใช้ =QUERY()
ที่อ่านง่ายกว่าเพราะว่ามันจับยัดใส่ =ARRAYFORMULA()
ไม่ได้ครับ ผมไม่ชอบมาลากสูตรใส่แถวยาวๆ และจะเห็นว่าผมอ้างอิงไปหา รายชื่อเดือน แล้วใน =VLOOKUP
ที่มีคำสั่ง =TEXT()
ยัดข้างในอีกที คำสั่งนี้เอาไว้จัดการ format ของ text ครับซึ่งผมก็เอา A2:A
เนี่ยมาเปลี่ยนให้อยู่ในรูปแบ MMMM
ก็คือชื่อเดือนแบบเต็มๆ แต่มันเป็นภาษาอังกฤษไงผมเลยต้อง =VLOOKUP()
ไปหาชื่อเดือนภาษาไทยใน sheet อีกที
ตัวอย่างคำสั่ง =TEXT()
นะครับเผื่อใครนึกภาพไม่ออก สำหรับใครที่งงว่า MMMM
มาไงแล้วชั้นจะไปรู้ได้ไงว่าต้องใส่ตัวนี้ ไปอ่านได้ที่นี่ครับ https://support.google.com/docs/answer/3094139?hl=th

เมื่อเรียบร้อยแล้วคำสั่งจะทำงานออกมาสวยงามอย่างนี้ครับ

ใบกำกับซื้อ #
สำคัญไม่แพ้กับ ใบกำกับขาย ครับ ใน sheet นี้เราจะเอาข้อมูลใบกำกับภาษีต่างๆที่เราซื้อมาในนามบริษัท/ห้าง/ร้าน ของเรา มาโยนลงไปครับ ใส่แค่ข้อมูลสำคัญนะครับ ไม่ต้องแจงรายละเอียดเอาแต่ยอดเท่านั้น

- ผู้ขาย (บริษัท/ห้าง/ร้าน) เหมือนกับ column ลูกค้า ของใบกำกับขายเลยครับ สร้าง Data validation โดยให้ Criteria เป็น List from a range จาก รายชื่อคู่ค้า

- ภาษี ก็เหมือนกันกับใบกำกับภาษีขายเลย สูตรเดียวกันเป๊ะเลยครับ
={
"ภาษี";
ARRAYFORMULA(
IF(
A2:A<>"",
(D2:D*7%),
""
)
)
}

- ยอดสุทธิ ภาษียังสูตรเดียวกันแล้วทำไมยอดสุทธิจะไม่เหมือนล่ะ จริงไหม?
={
"ยอดสุทธิ";
ARRAYFORMULA(
IF(
A2:A<>"",
(D2:D+E2:E),
""
)
)
}

- เดือน อันนี้ไม่เหมือนกันแล้วนะ เพราะใบกำกับภาษีซื้อเนี่ยสามารถนำไปใช้ได้ภายใน 6 เดือน แปลว่ามันอาจจะไม่ได้เป็นเดือนเดียวกันกับที่ออกก็ได้ อ่านเพิ่มเติม ดังนั้นแทนที่จะให้มันรู้เองโดยอัตโนมัติ เราเป็นคนเลือกเองดีกว่าไหม

ทำการคลุมทั้ง column ยกเว้นแถวแรก แล้วคลิกขวา Data validation เช่นเคย แต่รอบนี้ผมจะเลือก Criteria เป็น List of items ข้างในนั้นผมก็พิมพ์ลงไปแบบนี้
มกราคม,กุมภาพันธ์,มีนาคม,เมษายน,พฤษภาคม,มิถุนายน,กรกฎาคม,สิงหาคม,กันยายน,ตุลาคม,พฤศจิกายน,ธันวาคม,ยังไม่เลือก,ไม่ใช้,
มองเผินๆอาจจะสงสัยว่าทำไมไม่ไปดึงเอารายชื่อเดือนมาจาก sheet ล่ะ เดี๋ยวก่อนครับ นอกจากชื่อเดือนแล้วมันมี
- ยังไม่เลือก ซึ่งเอาไว้บอกว่าใบกำกับภาษีชุดนี้เรายังไม่ได้ใช้ยื่นเดือนไหนเลยนะ
- ไม่ใช้ อันนี้แปลว่าไม่ใช้คือ ไม่เอามาใช้คำนวณแน่ๆแต่บันทึกไว้เป็นหลักฐาน

แถมนิดนึง #
เมื่อเราบันทึกไปเรื่อยๆ แถวมันก็จะเยอะจนเราขี้เกียจ scroll ขึ้นลงเพื่อตามหาใช่ไหมครับ ปัญหานี้แก้ได้ไม่ยากด้วย Filter ครับเพียงคลิกเลือก column “ใช้ในเดือน” แล้วกดที่รูป “กรวย” บนเมนู จากนั้นคุณก็สามารถเลือกได้เลยว่าจะให้แสดงแถวที่มีค่าอะไรบ้าง เดือนไหนที่ยื่นไปแล้วเราก็ติ๊กออกได้ครับ



สร้างส่วนแสดงผล #
มาถึงส่วนสุดท้ายที่เรารอคอย หลังจากตรากตรำเก็บข้อมูลใส่ sheet มาจนตาลาย ถึงเวลาของการทำ report สวยๆงามๆกันแล้วครับ สร้าง sheet สุดท้ายกันครับ
สรุปรายเดือน #
sheet นี้ใช้แสดงรายการซื้อขายในแต่ละเดือนที่เราเลือก แล้วทำการรวมภาษีซื้อ-ขาย แล้วเอามาหักลบกันให้เองด้วย มีตัวนี้เพียงคลิกเลือกเดือนคุณก็จะได้ตัวเลขไปกรอก ภ.ง.ด ๕๐ แบบทันทีทันใด (ถ้าคุณไม่กรอกข้อมูลใบกำกับภาษีผิดนะ)
- เดือน ที่ cell
B1
ผมจะดึงเอาเดือนมาจาก sheet รายชื่อเดือน ด้วย Data validation ท่านี้ใช้หลายรอบแล้วหวังว่ารอบนี้ทุกคนน่าจะทำกันได้เอง โดยไม่ต้องมีภาพประกอบแล้วนะครับ :)

- รายการซื้อ-ขาย cell
A4
ตรงนี้บอกเลยว่าอาจมีคนงง แต่ค่อยๆดูแล้วทำความเข้าใจตามกันไปนะครับ
={
"รายการขาย","","","","","";
QUERY('ใบกำกับขาย'!A1:G,"select A,B,C,D,E,F where G = '"&B1&"'");
"","","","","","";
"รายการซื้อ","","","","","";
QUERY('ใบกำกับซื้อ'!A1:G,"select A,B,C,D,E,F where G = '"&B1&"'")
}
กลับมาอีกครั้งสำหรับคำสั่ง =QUERY()
ที่ผมชอบมากที่สุด ยังจำได้ใช่ไหมครับที่ผมอธิบาย ={1,2,3;,4,5,6}
ไปในตอนแรก ที่ผ่านมาใน sheet ใบกำกับซื้อ-ขาย เราใช้สูตรนี้แบบ column เดียว แต่รอบนี้มาถึง 6 columns เลยครับ อย่าพึ่งลายตานะ เดี๋ยวผมอธิบายทีละบรรทัด
บรรทัดที่ 1 "รายการขาย","","","","","";
อันนี้คือ Header เฉยๆครับ ทำไว้เพื่อความสวยงาม ส่วนไอ้ "",
ที่เห็นตามมาข้างหลังเป็นขบวนนั่นคือการบอกว่า cell นั้นว่างเปล่านะครับ ที่ต้องมี "",
ต่อท้าย 5 ตัวก็เพราะว่าคำสั่ง ={}
บรรทัดที่ 2 QUERY('ใบกำกับขาย'!A1:G,"select A,B,C,D,E,F where G = '"&B1&"'");
อันนี้ผมไป query เอาใบกำกับขายตั้งแต่ column A
ถึง F
หรือ “วันที่ - ยอดสุทธิ” มาแสดงครับ โดยที่ G
หรือ “เดือน” เท่ากับ B1
ก็คือเดือนที่เราเลือกเอาไว้
บรรทัดที่ 3 "","","","","","";
เว้นบรรทัดครับ ไม่มีอะไรแยกไว้จะได้สวยๆสบายตา
บรรทัดที่ 4 "รายการซื้อ","","","","","";
ตัวนี้จะคล้ายบรรทัดแรกครับแต่เป็น Header ของรายการซื้อบ้าง
บรรทัดที่ 5 QUERY('ใบกำกับซื้อ'!A1:G,"select A,B,C,D,E,F where G = '"&B1&"'")
query เอาใบกำกับซื้อตั้งแต่ column A
ถึง F
หรือ “วันที่ - ยอดสุทธิ” มาแสดงครับ โดยที่ G
หรือ “ใช้ในเดือน” เท่ากับ B1
ก็คือเดือนที่เราเลือกเอาไว้
สำหรับใครที่ enter ไปแล้วได้แต่ข้อมูลไม่มีสี ไม่ต้องตกใจครับ ผมลืม capture ภาพเอาไว้แต่เดี๋ยวเราจะมาตกแต่งมันอีกทีตอนท้าย

- รวมภาษีในเดือน ได้ตารางซื้อขายมาแล้วก็ถึงเวลาสรุปยอดซะที
ภาษีขาย หาผลรวมโดยคำสั่ง =QUERY()
เหมือนเดิมครับ แต่แทนที่เราจะ select E
แล้วมารวมกันทีหลัง เราสามารถใช้ select SUM(E)
ได้เลยครับ จะต่อท้าย label SUM(E) ''
หรือ label SUM(E) 'ภาษีขาย'
ก็ได้นะครับตามสะดวกเลย
=QUERY('ใบกำกับขาย'!A1:G,"select SUM(E) where G = '"&B1&"' label SUM(E) ''")
ภาษีซื้อ เหมือนกันกับภาษีขายเลยครับ ต่างกันตรงที่ชี้ไปหา sheet คนละตัวเท่านั้นเอง
=QUERY('ใบกำกับขาย'!A1:G,"select SUM(E) where G = '"&B1&"' label SUM(E) ''")

เมื่อเสร็จเรียบร้อยแล้วก็ลองเปลี่ยนเดือนที่ B1
ดูนะครับ อย่างในภาพผมจะเปลี่ยนจาก “สิงหาคม” ไปเป็น “กรกฎาคม”

แล้วข้อมูลของทั้งหน้าก็จะเปลี่ยนตามทันที

จะเพิ่มยอดซื้อยอดขายด้วย =QUERY()
เปลี่ยนจาก SUM(E)
มาเป็น SUM(D)
เท่านั้นเอง รูปตัวอย่างที่ผมเพิ่มเข้าไปครับ

ตกแต่งความสวยงาม #
หลายคนอาจจะมีคำถามว่าจะตกแต่งให้มันสวยงามยังไงดี ในเมื่อเราไม่รู้เลยว่า cell ไหนจะเป็นสีอะไร คำตอบอยู่ที่เมนู Format > Conditional formatting ครับผม เมนูนี้จะสามารถทำให้เรากำหนดเงื่อนไขได้ว่า cell เป็นแบบไหนจะให้มีสีพื้นหรือตัวอักษรเป็นยังไง อย่างในรูปตัวอย่างที่ผมทำจะมีอยู่ 5 เงื่อนไขที่กำหนดเอาไว้นะครับ (จริงๆจะให้เหลือ 3 ก็ได้นะ แต่เดี๋ยวงงสูตรกัน)

มาดูตัวอย่างกันสักอันแล้วกันครับ อันนี้จะเป็นเงื่อนไขที่ดูว่า “แถว” ที่พิจารณาอยู่เนี่ยเป็น Header ของ column ในรายการขายอยู่หรือเปล่า โดยผมตั้งค่าดังนี้นะครับ
- Apply to range ขอบเขตการพิจารณาตั้งแต่
A4:F501
ก็คือใต้สรุปตัวเลขลงไปยาวๆจนสุด sheet เลยครับ - Formula rules ผมเลือกเป็น “Custom formular” นะเพราะว่าเราจะกำหนดเอง โดยใช้สูตร
=($C:$C="ผู้ขาย (บริษัท/ห้าง/ร้าน)")
แปลว่าแถวใดๆก็ตามที่ column C
มีคำว่า “ผู้ขาย (บริษัท/ห้าง/ร้าน)” ให้เข้าเงื่อนไขนะ
- Formula style ตรงนี้ผมก็เทพื้นสีแดงเลย ทำตัวหนังสือสีขาวด้วยจะได้มองเห็นชัดๆ

แถมอีกนิด #
- เพื่อความสวยงามซ่อน grid ได้ที่ View > Gridlines ไปติ๊กออกซะ แล้วจะสวยงามเอง
- พอไม่มี grid ก็ทำตารางสลับสีโดยใช้ “Custom formula” นี้เลยนะครับ
=ISODD(ROW())
ถ้าใครอยากเป็นแถวคู่ก็ =ISEVEN(ROW())
ได้เหมือนกัน
พิมพ์เก็บไว้เป็นใบปะหน้า #
นอกจากจัดให้สวยงามได้แล้ว เรายังสามารถพิมพ์แล้วเก็บใส่แฟ้มเป็นเดือนๆได้ด้วยนะครับ

แนะนำว่าให้มีแฟ้มจริงๆ 3 แฟ้มไว้เก็บใบกำกับภาษีและเรียงตาม sheet นี้ด้วยเลยนะครับ จะได้สะดวกเวลาเปิดดูไปพร้อมๆกับตอนอ่านใน sheet
- แฟ้มใบกำกับภาษีขาย
- แฟ้มใบกำกับภาษีซื้อที่ยังไม่ถูกใช้ยื่น
- แฟ้มใบกำกับภาษีซื้อที่ใช้ยื่นแล้ว (แยกเป็นเดือนๆด้วยใบปะหน้า)
เพียงเท่านี้คุณผู้ประกอบการทั้งหลายก็จะมีระบบเล็กๆ ไว้จัดการภาษีแต่ละเดือนแล้วครับ แต่จะให้ดีบันทึกข้อมูลรายวันเลยจะดีมากนะครับเพราะเราจะเสียเวลาแค่วันละไม่กี่นาที ดีกว่ารวมมานั่งกรอกลงทั้งเดือน แบบนั้นอาจจะเสียเวลาเป็นวันก็ได้ครับ :)
ตัวอย่าง Google Sheet #
https://docs.google.com/spreadsheets/d/1N-MA_-kuAA9VWy7AFA69QNCoG6L6dv8r4qgpt1-4eBA/edit?usp=sharing